/*
 * DatosCantidadNaves.cpp
 *
 *  Created on: 02/02/2010
 *      Author: San Martín, Matías I.
 */

#include "DatosCantidadNaves.h"

#include <iostream>
#include <sstream>

#include "../../../Framework/Common/File.h"

namespace aplicacion {

std::ostream &operator<<( std::ostream &stream, const DatosCantidadNaves &obj )
{
	return stream << "DatosCantidadNaves("<< obj.getTamanio() <<"):"
			<< obj._cantidadNaves;
}

std::string DatosCantidadNaves::toString() const
{
	std::stringstream stm;
	stm << *this;
	return stm.str();
}

DatosCantidadNaves::DatosCantidadNaves() {
	this->setTamanio(sizeof(_cantidadNaves));

}

DatosCantidadNaves::~DatosCantidadNaves() {
}


/**
 * @throws IOExcepcion @see File#writeAll
 */
size_t DatosCantidadNaves::save (int fd) const
{
	size_t guardar = 0;

	guardar += sizeof(_cantidadNaves);
	File::writeAll(fd,&_cantidadNaves,sizeof(_cantidadNaves));

	return guardar;
}

/**
 * @throws IOExcepcion @see File#writeAll
 */
size_t DatosCantidadNaves::load (int fd)
{
	size_t cargar = 0;

	cargar += sizeof(_cantidadNaves);
	File::readAll(fd,&_cantidadNaves,sizeof(_cantidadNaves));

	this->setTamanio(cargar);
	return cargar;
}

size_t DatosCantidadNaves::saveToArray (uint8_t* arr) const
{
	memcpy(arr, &_cantidadNaves, this->getTamanio());

	return this->getTamanio();
}

size_t DatosCantidadNaves::loadFromArray (const uint8_t* arr)
{
	memcpy(&_cantidadNaves, arr, this->getTamanio());

	return this->getTamanio();
}

}//namespace aplicacion
